package com.ynet.middleground.user.service;

import com.ynet.core.common.BaseReqObj;
import com.ynet.core.common.BaseReqObjPager;
import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.user.bean.AddTableResourceReq;
import com.ynet.middleground.user.bean.QueryBaseReq;
import com.ynet.middleground.user.bean.UpdateTableResourceReq;
import com.ynet.middleground.user.dto.TableResourceDto;

import javax.validation.Valid;
import java.util.List;

/**
 * <p>
 * 渠道资源信息表 服务类
 * </p>
 *
 * @author yangbh
 * @modifyBy liulx
 * @since 2020-07-01
 */
public interface TableResourcesService {

    /**
     * 查询所有正常状态的资源信息
     *
     * @return 资料列表
     */
    ServiceResult<List<TableResourceDto>> queryAllTableResource();

    /**
     * 分页查询正常状态的资源信息
     *
     * @param req 分页查询对象
     * @return 资料列表
     */
    ServiceResult<List<TableResourceDto>> queryTableResourcePage(@Valid BaseReqObjPager req);

    /**
     * 根据资源 id 查询资源信息
     *
     * @param req 查询基础对象
     * @return 资源信息传输对象
     */
    ServiceResult<TableResourceDto> queryResourceDetail(@Valid QueryBaseReq req);

    /**
     * 保存资源
     *
     * @param req 新增渠道请求对象
     * @return 保存成功后的渠道 id
     */
    ServiceResult<Object> addResources(@Valid AddTableResourceReq req);

    /**
     * 修改资源信息
     *
     * @param req 修改资源信息参数
     * @return 结果以 success 字段为准, true 为修改成功， false 为修改失败
     */
    ServiceResult<Object> modifyResource(@Valid UpdateTableResourceReq req);

    /**
     * 删除资源信息
     * 
     * @param req 查询基础对象
     * @return 结果以 success 字段为准, true 为删除成功， false 为删除失败
     */
    ServiceResult<Object> deleteResource(@Valid QueryBaseReq req);

}
